charger28 2.2.1
Loading...
Searching...
No Matches
charger28.h File Reference

This file contains API for Charger 28 Click Driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_i2c_master.h"

Go to the source code of this file.

Data Structures

struct  charger28_t
 Charger 28 Click context object. More...
struct  charger28_cfg_t
 Charger 28 Click configuration object. More...

Macros

#define CHARGER28_REG_CHARGE_CURRENT_LIMIT   0x02
 Charger 28 register list.
#define CHARGER28_REG_CHARGE_VOLTAGE_LIMIT   0x04
#define CHARGER28_REG_INPUT_CURRENT_LIMIT   0x06
#define CHARGER28_REG_INPUT_VOLTAGE_LIMIT   0x08
#define CHARGER28_REG_IOTG_REGULATION   0x0A
#define CHARGER28_REG_VOTG_REGULATION   0x0C
#define CHARGER28_REG_MINIMAL_SYSTEM_VOLTAGE   0x0E
#define CHARGER28_REG_PRECHARGE_CONTROL   0x10
#define CHARGER28_REG_TERMINATION_CONTROL   0x12
#define CHARGER28_REG_CHARGE_TIMER_CONTROL   0x14
#define CHARGER28_REG_CHARGER_CONTROL_0   0x15
#define CHARGER28_REG_CHARGER_CONTROL_1   0x16
#define CHARGER28_REG_CHARGER_CONTROL_2   0x17
#define CHARGER28_REG_CHARGER_CONTROL_3   0x18
#define CHARGER28_REG_CHARGER_CONTROL_4   0x19
#define CHARGER28_REG_CHARGER_CONTROL_5   0x1A
#define CHARGER28_REG_NTC_CONTROL_0   0x1C
#define CHARGER28_REG_NTC_CONTROL_1   0x1D
#define CHARGER28_REG_NTC_CONTROL_2   0x1E
#define CHARGER28_REG_NTC_CONTROL_3   0x1F
#define CHARGER28_REG_CHARGER_STATUS_0   0x20
#define CHARGER28_REG_CHARGER_STATUS_1   0x21
#define CHARGER28_REG_FAULT_STATUS   0x22
#define CHARGER28_REG_CHARGER_FLAG_0   0x23
#define CHARGER28_REG_CHARGER_FLAG_1   0x24
#define CHARGER28_REG_FAULT_FLAG   0x25
#define CHARGER28_REG_CHARGER_MASK_0   0x26
#define CHARGER28_REG_CHARGER_MASK_1   0x27
#define CHARGER28_REG_FAULT_MASK   0x28
#define CHARGER28_REG_ICO_CURRENT_LIMIT   0x29
#define CHARGER28_REG_ADC_CONTROL   0x2B
#define CHARGER28_REG_ADC_CHANNEL_DISABLE   0x2C
#define CHARGER28_REG_IBUS_ADC   0x2D
#define CHARGER28_REG_IBAT_ADC   0x2F
#define CHARGER28_REG_VBUS_ADC   0x31
#define CHARGER28_REG_VPMID_ADC   0x33
#define CHARGER28_REG_VBAT_ADC   0x35
#define CHARGER28_REG_VSYS_ADC   0x37
#define CHARGER28_REG_TS_ADC   0x39
#define CHARGER28_REG_TDIE_ADC   0x3B
#define CHARGER28_REG_ADCIN_ADC   0x3D
#define CHARGER28_REG_PART_INFORMATION   0x3F
#define CHARGER28_REG_VIRTUAL_CONTROL_0   0x80
#define CHARGER28_REG_VIRTUAL_CONTROL_1   0x81
#define CHARGER28_CHARGER_CONTROL_1_EN_AUTO_IBAT_DSCHG_DIS   0x00
 Charger 28 charger control 1 register setting.
#define CHARGER28_CHARGER_CONTROL_1_EN_AUTO_IBAT_DSCHG_EN   0x80
#define CHARGER28_CHARGER_CONTROL_1_EN_AUTO_IBAT_DSCHG_MASK   0x80
#define CHARGER28_CHARGER_CONTROL_1_FORCE_IBAT_DSCHG_DIS   0x00
#define CHARGER28_CHARGER_CONTROL_1_FORCE_IBAT_DSCHG_EN   0x40
#define CHARGER28_CHARGER_CONTROL_1_FORCE_IBAT_DSCHG_MASK   0x40
#define CHARGER28_CHARGER_CONTROL_1_EN_CHG_DIS   0x00
#define CHARGER28_CHARGER_CONTROL_1_EN_CHG_EN   0x20
#define CHARGER28_CHARGER_CONTROL_1_EN_CHG_MASK   0x20
#define CHARGER28_CHARGER_CONTROL_1_EN_HIZ_DIS   0x00
#define CHARGER28_CHARGER_CONTROL_1_EN_HIZ_EN   0x10
#define CHARGER28_CHARGER_CONTROL_1_EN_HIZ_MASK   0x10
#define CHARGER28_CHARGER_CONTROL_1_FORCE_PMID_DSCHG_DIS   0x00
#define CHARGER28_CHARGER_CONTROL_1_FORCE_PMID_DSCHG_EN   0x08
#define CHARGER28_CHARGER_CONTROL_1_FORCE_PMID_DSCHG_MASK   0x08
#define CHARGER28_CHARGER_CONTROL_1_WD_RST_CLEAR   0x00
#define CHARGER28_CHARGER_CONTROL_1_WD_RST_SET   0x04
#define CHARGER28_CHARGER_CONTROL_1_WD_RST_MASK   0x04
#define CHARGER28_CHARGER_CONTROL_1_WATCHDOG_DISABLE   0x00
#define CHARGER28_CHARGER_CONTROL_1_WATCHDOG_40S   0x01
#define CHARGER28_CHARGER_CONTROL_1_WATCHDOG_80S   0x02
#define CHARGER28_CHARGER_CONTROL_1_WATCHDOG_160S   0x03
#define CHARGER28_CHARGER_CONTROL_1_WATCHDOG_MASK   0x03
#define CHARGER28_CHARGER_CONTROL_2_REG_RST_CLEAR   0x00
 Charger 28 charger control 2 register setting.
#define CHARGER28_CHARGER_CONTROL_2_REG_RST_SET   0x80
#define CHARGER28_CHARGER_CONTROL_2_REG_RST_MASK   0x80
#define CHARGER28_CHARGER_CONTROL_2_TREG_60C   0x00
#define CHARGER28_CHARGER_CONTROL_2_TREG_120C   0x40
#define CHARGER28_CHARGER_CONTROL_2_TREG_MASK   0x40
#define CHARGER28_CHARGER_CONTROL_2_EN_DITHER_DISABLE   0x00
#define CHARGER28_CHARGER_CONTROL_2_EN_DITHER_1X   0x10
#define CHARGER28_CHARGER_CONTROL_2_EN_DITHER_2X   0x20
#define CHARGER28_CHARGER_CONTROL_2_EN_DITHER_3X   0x30
#define CHARGER28_CHARGER_CONTROL_2_EN_DITHER_MASK   0x30
#define CHARGER28_CHARGER_CONTROL_2_SET_CONV_STRN_RED_3   0x00
#define CHARGER28_CHARGER_CONTROL_2_SET_CONV_STRN_RED_2   0x04
#define CHARGER28_CHARGER_CONTROL_2_SET_CONV_STRN_RED_1   0x08
#define CHARGER28_CHARGER_CONTROL_2_SET_CONV_STRN_MAX   0x0C
#define CHARGER28_CHARGER_CONTROL_2_SET_CONV_STRN_MASK   0x0C
#define CHARGER28_CHARGER_CONTROL_2_SET_BATFET_STRN_RED   0x00
#define CHARGER28_CHARGER_CONTROL_2_SET_BATFET_STRN_MAX   0x02
#define CHARGER28_CHARGER_CONTROL_2_SET_BATFET_STRN_MASK   0x02
#define CHARGER28_CHARGER_CONTROL_2_VBUS_OVP_6_3V   0x00
#define CHARGER28_CHARGER_CONTROL_2_VBUS_OVP_18_5V   0x01
#define CHARGER28_CHARGER_CONTROL_2_VBUS_OVP_MASK   0x01
#define CHARGER28_NTC_CONTROL_0_TS_IGNORE_CLEAR   0x00
 Charger 28 NTC control 0 register setting.
#define CHARGER28_NTC_CONTROL_0_TS_IGNORE_SET   0x80
#define CHARGER28_NTC_CONTROL_0_TS_IGNORE_MASK   0x80
#define CHARGER28_NTC_CONTROL_0_CHG_RATE_1C   0x00
#define CHARGER28_NTC_CONTROL_0_CHG_RATE_2C   0x20
#define CHARGER28_NTC_CONTROL_0_CHG_RATE_4C   0x40
#define CHARGER28_NTC_CONTROL_0_CHG_RATE_6C   0x60
#define CHARGER28_NTC_CONTROL_0_CHG_RATE_MASK   0x60
#define CHARGER28_NTC_CONTROL_0_TS_TH_OTG_HOT_55C   0x00
#define CHARGER28_NTC_CONTROL_0_TS_TH_OTG_HOT_60C   0x08
#define CHARGER28_NTC_CONTROL_0_TS_TH_OTG_HOT_65C   0x10
#define CHARGER28_NTC_CONTROL_0_TS_TH_OTG_HOT_DISABLE   0x18
#define CHARGER28_NTC_CONTROL_0_TS_TH_OTG_HOT_MASK   0x18
#define CHARGER28_NTC_CONTROL_0_TS_TH_OTG_COLD_MIN_10C   0x00
#define CHARGER28_NTC_CONTROL_0_TS_TH_OTG_COLD_MIN_20C   0x04
#define CHARGER28_NTC_CONTROL_0_TS_TH_OTG_COLD_MASK   0x04
#define CHARGER28_NTC_CONTROL_0_TS_TH1_MIN_5C   0x00
#define CHARGER28_NTC_CONTROL_0_TS_TH1_0C   0x02
#define CHARGER28_NTC_CONTROL_0_TS_TH1_MASK   0x02
#define CHARGER28_NTC_CONTROL_0_TS_TH6_55C   0x00
#define CHARGER28_NTC_CONTROL_0_TS_TH6_60C   0x01
#define CHARGER28_NTC_CONTROL_0_TS_TH6_MASK   0x01
#define CHARGER28_CHARGER_STATUS_0_PG_STAT   0x80
 Charger 28 charger status 0 register setting.
#define CHARGER28_CHARGER_STATUS_0_ADC_DONE_STAT   0x40
#define CHARGER28_CHARGER_STATUS_0_TREG_STAT   0x20
#define CHARGER28_CHARGER_STATUS_0_VSYS_STAT   0x10
#define CHARGER28_CHARGER_STATUS_0_IINDPM_STAT   0x08
#define CHARGER28_CHARGER_STATUS_0_VINDPM_STAT   0x04
#define CHARGER28_CHARGER_STATUS_0_SAFETY_TMR_STAT   0x02
#define CHARGER28_CHARGER_STATUS_0_WD_STAT   0x01
#define CHARGER28_CHARGER_STATUS_1_ICO_STAT_DIS   0x00
 Charger 28 charger status 1 register setting.
#define CHARGER28_CHARGER_STATUS_1_ICO_STAT_OPTIMIZATION   0x40
#define CHARGER28_CHARGER_STATUS_1_ICO_STAT_MAX_IN_CURRENT   0x80
#define CHARGER28_CHARGER_STATUS_1_ICO_STAT_SUSPENDED   0xC0
#define CHARGER28_CHARGER_STATUS_1_ICO_STAT_MASK   0xC0
#define CHARGER28_CHARGER_STATUS_1_CHG_STAT_NOT_CHARGING   0x00
#define CHARGER28_CHARGER_STATUS_1_CHG_STAT_TRICKLE_CHARGE   0x08
#define CHARGER28_CHARGER_STATUS_1_CHG_STAT_PRE_CHARGE   0x10
#define CHARGER28_CHARGER_STATUS_1_CHG_STAT_FAST_CHARGE   0x18
#define CHARGER28_CHARGER_STATUS_1_CHG_STAT_TAPER_CHARGE   0x20
#define CHARGER28_CHARGER_STATUS_1_CHG_STAT_TO_TIMER_ACT_CH   0x30
#define CHARGER28_CHARGER_STATUS_1_CHG_STAT_CHARGE_DONE   0x38
#define CHARGER28_CHARGER_STATUS_1_CHG_STAT_MASK   0x38
#define CHARGER28_CHARGER_STATUS_1_VBUS_STAT_NOT_POWERED   0x00
#define CHARGER28_CHARGER_STATUS_1_VBUS_STAT_IINDPM   0x04
#define CHARGER28_CHARGER_STATUS_1_VBUS_STAT_IN_BOOST_OTG   0x07
#define CHARGER28_CHARGER_STATUS_1_VBUS_STAT_MASK   0x07
#define CHARGER28_FAULT_STATUS_VBUS_FAULT_STAT   0x80
 Charger 28 fault status register setting.
#define CHARGER28_FAULT_STATUS_BAT_FAULT_STAT   0x40
#define CHARGER28_FAULT_STATUS_VSYS_FAULT_STAT   0x20
#define CHARGER28_FAULT_STATUS_OTG_FAULT_STAT   0x10
#define CHARGER28_FAULT_STATUS_TSHUT_STAT   0x08
#define CHARGER28_FAULT_STATUS_TS_STAT_TS_NORMAL   0x00
#define CHARGER28_FAULT_STATUS_TS_STAT_TS_COLD   0x01
#define CHARGER28_FAULT_STATUS_TS_STAT_TS_HOT   0x02
#define CHARGER28_FAULT_STATUS_TS_STAT_TS_COOL   0x03
#define CHARGER28_FAULT_STATUS_TS_STAT_TS_WARM   0x04
#define CHARGER28_FAULT_STATUS_TS_STAT_TS_PRECOOL   0x05
#define CHARGER28_FAULT_STATUS_TS_STAT_TS_PREWARM   0x06
#define CHARGER28_FAULT_STATUS_TS_STAT_MASK   0x07
#define CHARGER28_ADC_CONTROL_EN_ADC_DIS   0x00
 Charger 28 ADC control register setting.
#define CHARGER28_ADC_CONTROL_EN_ADC_EN   0x80
#define CHARGER28_ADC_CONTROL_EN_ADC_MASK   0x80
#define CHARGER28_ADC_CONTROL_ADC_RATE_CONTINUOUS   0x00
#define CHARGER28_ADC_CONTROL_ADC_RATE_ONE_SHOT   0x40
#define CHARGER28_ADC_CONTROL_ADC_RATE_MASK   0x40
#define CHARGER28_ADC_CONTROL_ADC_SAMPLE_11BIT   0x00
#define CHARGER28_ADC_CONTROL_ADC_SAMPLE_10BIT   0x10
#define CHARGER28_ADC_CONTROL_ADC_SAMPLE_9BIT   0x20
#define CHARGER28_ADC_CONTROL_ADC_SAMPLE_8BIT   0x30
#define CHARGER28_ADC_CONTROL_ADC_SAMPLE_MASK   0x30
#define CHARGER28_ADC_CONTROL_ADC_AVG_DIS   0x00
#define CHARGER28_ADC_CONTROL_ADC_AVG_EN   0x08
#define CHARGER28_ADC_CONTROL_ADC_AVG_MASK   0x08
#define CHARGER28_ADC_CONTROL_ADC_AVG_INIT_REG_VALUE   0x00
#define CHARGER28_ADC_CONTROL_ADC_AVG_INIT_NEW_CONV   0x04
#define CHARGER28_ADC_CONTROL_ADC_AVG_INIT_MASK   0x04
#define CHARGER28_ADC_CONTROL_DIS_ADCIN_ADC_EN   0x00
#define CHARGER28_ADC_CONTROL_DIS_ADCIN_ADC_DIS   0x01
#define CHARGER28_ADC_CONTROL_DIS_ADCIN_ADC_MASK   0x01
#define CHARGER28_LSB_ADC_IBUS   2.5
 Charger 28 ADC measurement resolution setting.
#define CHARGER28_LSB_ADC_VBUS   5
#define CHARGER28_LSB_ADC_VPMID   5
#define CHARGER28_LSB_ADC_VBAT   1.25
#define CHARGER28_LSB_ADC_IBAT   5
#define CHARGER28_LSB_ADC_VSYS   1.25
#define CHARGER28_LSB_ADC_ADCIN   0.25
#define CHARGER28_LSB_ADC_TS   0.098
#define CHARGER28_LSB_ADC_TDIE   0.5
#define CHARGER28_PART_NUMBER   0x04
 Charger 28 device part number setting.
#define CHARGER28_PART_NUMBER_MASK   0x3C
#define CHARGER28_DEVICE_ADDRESS   0x6B
 Charger 28 device address setting.
#define CHARGER28_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.

Enumerations

enum  charger28_return_value_t { CHARGER28_OK = 0 , CHARGER28_ERROR = -1 }
 Charger 28 Click return value data. More...

Functions

void charger28_cfg_setup (charger28_cfg_t *cfg)
 Charger 28 configuration object setup function.
err_t charger28_init (charger28_t *ctx, charger28_cfg_t *cfg)
 Charger 28 initialization function.
err_t charger28_default_cfg (charger28_t *ctx)
 Charger 28 default configuration function.
err_t charger28_write_reg_bytes (charger28_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
 Charger 28 write multiple register bytes function.
err_t charger28_read_reg_bytes (charger28_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
 Charger 28 read multiple register bytes function.
err_t charger28_write_reg_byte (charger28_t *ctx, uint8_t reg, uint8_t data_in)
 Charger 28 write single register byte function.
err_t charger28_read_reg_byte (charger28_t *ctx, uint8_t reg, uint8_t *data_out)
 Charger 28 read single register byte function.
err_t charger28_write_reg_word (charger28_t *ctx, uint8_t reg, uint16_t data_in)
 Charger 28 write register word function.
err_t charger28_read_reg_word (charger28_t *ctx, uint8_t reg, uint16_t *data_out)
 Charger 28 read register word function.
err_t charger28_check_communication (charger28_t *ctx)
 Charger 28 check communication function.
void charger28_enable_charging (charger28_t *ctx)
 Charger 28 enable charging function.
void charger28_disable_charging (charger28_t *ctx)
 Charger 28 disable charging function.
uint8_t charger28_get_pg_pin (charger28_t *ctx)
 Charger 28 get PG pin state function.
uint8_t charger28_get_sts_pin (charger28_t *ctx)
 Charger 28 get STS pin state function.
uint8_t charger28_get_int_pin (charger28_t *ctx)
 Charger 28 get INT pin state function.
err_t charger28_get_ibus (charger28_t *ctx, float *ibus)
 Charger 28 get input current function.
err_t charger28_get_ibat (charger28_t *ctx, int16_t *ibat)
 Charger 28 get battery current function.
err_t charger28_get_vbus (charger28_t *ctx, uint16_t *vbus)
 Charger 28 get bus voltage function.
err_t charger28_get_vpmid (charger28_t *ctx, uint16_t *vpmid)
 Charger 28 get PMID voltage function.
err_t charger28_get_vbat (charger28_t *ctx, float *vbat)
 Charger 28 get battery voltage function.
err_t charger28_get_vsys (charger28_t *ctx, float *vsys)
 Charger 28 get system voltage function.
err_t charger28_get_ts (charger28_t *ctx, float *ts)
 Charger 28 get TS percentage function.
err_t charger28_get_tdie (charger28_t *ctx, float *tdie)
 Charger 28 get die temperature function.
err_t charger28_get_adcin (charger28_t *ctx, float *adcin)
 Charger 28 get ADC input function.

Detailed Description

This file contains API for Charger 28 Click Driver.

Enumeration Type Documentation

◆ charger28_return_value_t

Charger 28 Click return value data.

Predefined enum values for driver return values.

Enumerator
CHARGER28_OK 
CHARGER28_ERROR